package com.xueyi.game.backend.service;



import com.xueyi.core.expection.BusinessException;
import com.xueyi.game.backend.entity.dto.AddOrUpdateJurisdictionDto;
import com.xueyi.game.backend.entity.dto.DeleteJurisdictionByIdDto;
import com.xueyi.game.backend.entity.dto.FindAllJurisdictionDto;
import com.xueyi.game.backend.entity.dto.RemoveMenuByIdDto;
import com.xueyi.game.backend.entity.vo.BaseMenuVo;
import com.xueyi.game.backend.entity.vo.BaseSelectVo;

import java.util.List;

/**
 * @author: hxs
 * @createDate: 2022/11/9 16:10
 * @description: 权限管理业务
 */
public interface BaseJurisdictionService {

    /**
     * 获取所有的权限
     *
     * @param findAllJurisdictionDto
     * @return
     * @author: hxs
     */
    List<BaseMenuVo> findAllJurisdiction(FindAllJurisdictionDto findAllJurisdictionDto);

    /**
     * 新增权限
     *
     * @param addOrUpdateJurisdictionDto
     * @return
     * @author: hxs
     */
    void addJurisdiction(AddOrUpdateJurisdictionDto addOrUpdateJurisdictionDto) throws BusinessException;

    /**
     * 修改权限
     *
     * @param addOrUpdateJurisdictionDto
     * @return
     * @author hxs
     */
    void updateJurisdiction(AddOrUpdateJurisdictionDto addOrUpdateJurisdictionDto) throws BusinessException;

    /**
     * 获取所有的顶级菜单
     *
     * @return
     * @author hxs
     */
    List<BaseSelectVo> findAllFatherMenu(Integer type);

    /**
     * 删除权限
     *
     * @param deleteJurisdictionByIdDto
     * @return
     * @author hxs
     */
    void deleteJurisdictionById(DeleteJurisdictionByIdDto deleteJurisdictionByIdDto);

    /**
     * 物理删除权限
     *
     * @param removeMenuByIdDto
     * @return
     * @author hxs
     */
    void removeMenuById(RemoveMenuByIdDto removeMenuByIdDto);
}
